#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include "lista.h"

void main()
{
	/*snodo *lista;*/
	tipolista lista;
	int elementos;
	int i;
	int valor;
	int conta_l;
	int busca;
	int numero;
	int posicion;

	clrscr();
	lista=lista_vacia();

	if (es_lista_vacia(lista))
	{
		printf("\nLa lista esta vacia");
	}
	else
	{
		printf("\nLa lista no esta vacia");
	}

	printf ("\n ¨cuantos elementos quieres introducir al principio de la lista?: ");
	scanf ("%d",&elementos);

	for (i=0;i<elementos;i++)
	 {
	  printf ("elemento %d: ",i);
	  scanf ("%d",&valor);
	  lista=inserta_por_cabeza(lista,valor);
	 }
	 conta_l=conta_lista(lista);
	 printf ("\n hay %d listas",conta_l);

	 muestra_lista(lista);

	 printf ("\n");

	 printf ("\n ¨cuantos elementos quieres introducir al final de la lista?: ");
	 scanf ("%d",&elementos);


	for (i=0;i<elementos;i++)
	 {
	  printf ("elemento %d: ",i);
	  scanf ("%d",&valor);
	  lista=inserta_por_cola(lista,valor);

	 }

	 muestra_lista(lista);

	 printf ("\n");

	 printf ("\n ¨cuantos elementos quieres borrar al principio de la lista?: ");
	 scanf ("%d",&elementos);


	for (i=0;i<elementos;i++)
	 {
	  lista=borra_por_cabeza(lista);

	 }

	 muestra_lista(lista);

	 printf ("\n");

	 printf ("\n ¨cuantos elementos quieres borrar al final de la lista?: ");
	 scanf ("%d",&elementos);


	for (i=0;i<elementos;i++)
	 {
	  lista=borra_por_cola(lista);

	 }

	 muestra_lista(lista);

	 printf ("\n");
	 printf ("\n introduce un numero que quieras buscar: ");
	 scanf ("%d",&busca);

	 if (busca_lista(lista,busca)==1)

	 {
		printf ("\n  se encuentra el elemento");
	 }

	 else

	  {
		printf ("\n no se ha encuentrado el elemento");

	  }

	  printf ("\n");
	  printf ("\n introduce el numero por el cual vamos a eliminar el primer nodo de la lista: ");
	  scanf ("%d",&numero);
	  lista=cambia_nodo(lista,numero);
	  printf ("\n");
	  muestra_lista(lista);

	  printf ("\n");
	  printf ("\n introduce el numero que quieres que desaparezca de la lista: ");
	  scanf ("%d",&numero);
	  lista=elimina_numero(lista,numero);
	  muestra_lista(lista);

	  printf("\n introduce la posicion a la cual quieres introducir el valor: ");
	  scanf ("%d",&posicion);

	  printf ("\n introduce el valor por el cual vamos a introducir ese numero: ");
	  scanf ("%d",&numero);
	  lista=posi_nodo(lista,numero,posicion);
	  muestra_lista(lista);



}